What is @lezer/highlight?
@lezer/highlight is a syntax highlighting library that works with the Lezer parser system. It allows you to define and apply syntax highlighting rules to code parsed by Lezer parsers.
What are @lezer/highlight's main functionalities?
Defining Highlighting Styles
This feature allows you to define custom highlighting styles for different syntax elements like keywords, strings, and comments.
const { styleTags, tags } = require('@lezer/highlight');
const myHighlighting = styleTags({
Keyword: tags.keyword,
String: tags.string,
Comment: tags.comment
});
Applying Highlighting to Parsed Code
This feature allows you to apply the defined highlighting styles to a parsed syntax tree, and it logs the highlighted ranges and their corresponding classes.
const { highlightTree } = require('@lezer/highlight');
const { parser } = require('lezer-python');
const { defaultHighlightStyle } = require('@codemirror/highlight');
const code = 'def my_function():\n return "Hello, World!"';
const tree = parser.parse(code);
highlightTree(tree, defaultHighlightStyle.match, (from, to, classes) => {
console.log(`Highlight ${from}-${to}: ${classes}`);
});
Other packages similar to @lezer/highlight
highlight.js
highlight.js is a popular syntax highlighting library that supports a wide range of languages and is easy to integrate into web projects. Unlike @lezer/highlight, it does not require a separate parser and comes with built-in language definitions.
Prism
Prism is a lightweight, extensible syntax highlighter that supports a variety of languages and themes. It is similar to @lezer/highlight in that it allows for custom highlighting rules, but it is more focused on web integration and has a larger community and more plugins.
@lezer/highlight
[ WEBSITE | ISSUES | FORUM | CHANGELOG ]
Lezer is an incremental parser system
intended for use in an editor or similar system.
@lezer/highlight provides a syntax highlighting framework for Lezer
parse trees.
Its programming interface is documented on the
website.
This code is licensed under an MIT license.